# run_programs.py
import subprocess
import time
import sys
import os

def run_program(program, fullscreen=False):
    try:
        cmd = [sys.executable, program]
        if fullscreen:
            cmd.append("--fullscreen")
        return subprocess.Popen(cmd)
    except Exception as e:
        print(f"启动 {program} 时出错: {str(e)}")
        return None

if __name__ == "__main__":
    # 确保当前目录是脚本所在的目录
    os.chdir(os.path.dirname(os.path.abspath(__file__)))

    print("正在启动全屏游戏...")
    print("按 Ctrl+C 可以退出游戏")

    # 首先启动背景程序
    listener_process = run_program("对话剧情背景.py", fullscreen=True)
    if not listener_process:
        print("无法启动背景程序，退出。")
        sys.exit(1)

    # 给背景程序一些时间来初始化
    time.sleep(2)

    # 然后启动主程序
    main_process = run_program("对话剧情.py", fullscreen=True)
    if not main_process:
        print("无法启动主程序，正在关闭背景程序。")
        listener_process.terminate()
        sys.exit(1)

    try:
        # 等待主程序结束
        main_process.wait()
    except KeyboardInterrupt:
        print("\n用户中断，正在关闭程序...")
    finally:
        # 主程序结束后，关闭背景程序
        listener_process.terminate()

    print("所有程序已关闭。")